iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
0
Modern Web

挑戰!用30天做一個自己的履歷作品集網頁!系列 第 24

Day 24 | Keep Going 8 - 偽元素 與 時間軸

  • 分享至 

  • xImage
  •  

於是 timeline::after 就是設一個div 在timeline 後面,當作時間軸的中軸。
要來繼續攻克時間軸囉!就剩最後一擊啦!
首先用一個大div 把昨天做好的時間軸內容包起來,這邊給他個class 取名為timeline 。

<div class="timeline">
	<!--時間軸的內容-->
</div>
.timeline{
    position: relative;
    margin: 50px auto;
    display: flex;
    flex-flow: column;
    align-items:center;
}
.timeline::after {
    content: '';
    position: absolute;
    width: 6px;
    background-color:#3A3A3A;
    top: 0;
    bottom: 0;
    left: 50%;
    margin-left: -3px;
  }

這邊在timeline 使用了CSS 一個特別的標籤——偽元素,先簡單介紹一下偽元素。

偽元素

CSS中有兩種虛擬的標籤,偽類與偽元素,他們不會直接出現在html 檔案之中,卻可以藉由CSS 進行調整,增加了網頁的彈性。像先前介紹過的 :hover 就是偽類之一,而這次會使用到的 ::after 與 ::before 則是屬於偽元素。
::after 與 ::before 可以在原本元素的前後利用 content: ''; 新增內容,content一定要有,但裡面可以沒有內容,就直接把偽元素當成是一個div ,換句話說無法新增內容的img之類的是無法使用偽元素的。
使用偽元素的好處除了省下在html 裡新增div之外,也因為他的display 屬性是inline 所以在使用時可以直接接在原始元素的前後,不用擔心他跑版,但也因為他是寫在CSS 裡的偽元素,所以滑鼠是選取不到的。如果是單純要在html 的內容前後插入div 做的圖形時,就可以使用偽元素,省去排版的功夫。

設定它的寬度與顏色,使用left:50% 讓他置中,但寬度是會被算進去的,所以再設定寬度一半的margin-left 讓它真的置中。並且使用flex 讓box 們置中。
接下來就是點點以及調整整體的位置了。

.web-box::after{
    content: '';
    position: absolute;
    width: 25px;
    height: 25px;
    right: -21%;
    background-color:#44858C;
    top: 5px;
    border-radius: 50%;
    z-index: 1;
}
.left-box{
    right:25%;
}
.right-box{
    left:25%;
}
.right-box::after {
    left: -21%;
  }

這邊一樣對web-box 使用::after,做出軸上的點點,用right 調整位置(會依照box 跟軸的距離有所不同)。
調整左右兩邊box 的位置,最後記得把右邊box 的點點移到中間。
時間軸就大功告成啦!
https://ithelp.ithome.com.tw/upload/images/20201006/20130249knuOmloPdU.png


下一章 Keep Going 9 - UI 區塊

※本文章所使用之圖片皆為本人作品,內容則為本人之經驗分享


上一篇
Day 23 | Keep Going 7 - 時間軸
下一篇
Day 25 | Keep Going 9 - UI 區塊
系列文
挑戰!用30天做一個自己的履歷作品集網頁!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言